/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package jogodavelha;

import java.util.Scanner;

/**
 *
 * @author Gabriel
 */
public class Tabuleiro extends Jogodavelha{
    
    private int x, y;
    
    private String [][] tabuleiro = new String[3][3];
    private String posAtual;
        
    private Scanner leitor = new Scanner(System.in);
    
    
    public void inicializa (){
        for(x=0;x<tabuleiro.length;x++){
            for(y=0;y<tabuleiro.length;y++) {
                tabuleiro[x][y] = "-";
            }
        }
    }
    
    
    public void getPosicao(int x, int y, int jogador) {
        x=x-1;
        y=y-1;
        if(jogador == 1) {
            tabuleiro[x][y] = "O";
        }
        else if (jogador == 2) {
            tabuleiro[x][y] = "X";
        }
        else {
            System.out.println("Tem algo errado");
        }
    }
    
    public void Joga (int jogador){
        System.out.println("Jogador " + jogador + "- Digite a coordenada X e logo após a coordenada Y: ");
            System.out.printf("Posição x:");
            x = leitor.nextInt();
            System.out.printf("Posição y:");
            y = leitor.nextInt();
            while(!verificaJogada(x, y)) {
                    System.out.println("Jogada inválida. Jogue novamente: ");
                    System.out.printf("Posição x:");
                    x = leitor.nextInt();
                    System.out.printf("Posição y:");
                    y = leitor.nextInt();
            }
            getPosicao(x, y, jogador);
            printTabuleiro();
        
        
    }
    
    
    public boolean verificaJogada (int x, int y) {
        x=x-1;
        y=y-1;
        if(x > 2 || y > 2) {
            return false;
        }
        else if("-".equals(tabuleiro[x][y])){
            return true;
        }
        else {
            return false;
        }
    }
    
   boolean verificaGanhador () {
        if(tabuleiro[0][0].equals(tabuleiro[0][1]) && tabuleiro[0][0].equals(tabuleiro[0][2])) {
            posAtual = tabuleiro[0][0];
            switch (posAtual) {
                case "-":
                    return false;
                case "O":
                    System.out.println("O jogador 1 venceu!");
                    return true;
                case "X":
                    System.out.println("O jogador 2 venceu!");
                    return true;
            }
        }
        if(tabuleiro[1][0].equals(tabuleiro[1][1]) && tabuleiro[1][0].equals(tabuleiro[1][2])) {
            posAtual = tabuleiro[1][0];
            switch (posAtual) {
                case "-":
                    return false;
                case "O":
                    System.out.println("O jogador 1 venceu!");
                    return true;
                case "X":
                    System.out.println("O jogador 2 venceu!");
                    return true;
            }
        }
        if(tabuleiro[2][0].equals(tabuleiro[2][1]) && tabuleiro[2][0].equals(tabuleiro[2][2])) {
            posAtual = tabuleiro[2][0];
            switch (posAtual) {
                case "-":
                    return false;
                case "O":
                    System.out.println("O jogador 1 venceu!");
                    return true;
                case "X":
                    System.out.println("O jogador 2 venceu!");
                    return true;
            }
        }
        if(tabuleiro[0][0].equals(tabuleiro[1][0]) && tabuleiro[0][0].equals(tabuleiro[2][0])) {
            posAtual = tabuleiro[0][0];
            switch (posAtual) {
                case "-":
                    return false;
                case "O":
                    System.out.println("O jogador 1 venceu!");
                    return true;
                case "X":
                    System.out.println("O jogador 2 venceu!");
                    return true;
            }
        }
        if(tabuleiro[0][1].equals(tabuleiro[1][1]) && tabuleiro[0][1].equals(tabuleiro[2][1])) {
            posAtual = tabuleiro[0][1];
            switch (posAtual) {
                case "-":
                    return false;
                case "O":
                    System.out.println("O jogador 1 venceu!");
                    return true;
                case "X":
                    System.out.println("O jogador 2 venceu!");
                    return true;
            }
        }
        if(tabuleiro[0][2].equals(tabuleiro[1][2]) && tabuleiro[0][2].equals(tabuleiro[2][2])) {
            posAtual = tabuleiro[0][2];
            switch (posAtual) {
                case "-":
                    return false;
                case "O":
                    System.out.println("O jogador 1 venceu!");
                    return true;
                case "X":
                    System.out.println("O jogador 2 venceu!");
                    return true;
            }
        }
        if(tabuleiro[0][0].equals(tabuleiro[1][1]) && tabuleiro[0][0].equals(tabuleiro[2][2])) {
            posAtual = tabuleiro[0][0];
            switch (posAtual) {
                case "-":
                    return false;
                case "O":
                    System.out.println("O jogador 1 venceu!");
                    return true;
                case "X":
                    System.out.println("O jogador 2 venceu!");
                    return true;
            }
        }
        if(tabuleiro[0][2].equals(tabuleiro[1][1]) && tabuleiro[0][2].equals(tabuleiro[2][0])) {
            posAtual = tabuleiro[0][2];
            switch (posAtual) {
                case "-":
                    return false;
                case "O":
                    System.out.println("O jogador 1 venceu!");
                    return true;
                case "X":
                    System.out.println("O jogador 2 venceu!");
                    return true;
            }
        } 
        return false;
   }

    
    public void printTabuleiro() {
        for(x=0;x<tabuleiro.length;x++){
            for(y=0;y<tabuleiro.length;y++) {
                System.out.printf(" " + tabuleiro[x][y]);
                if(y == 2){
                    System.out.println();
                }
            }
        }
    }




    
}
